package gepes.negocio;

import java.util.ArrayList;
import java.util.Collection;

import gepes.dao.TipoDocumentoDAO;
import gepes.dao.EstudianteDAO;
import gepes.exepcion.DAOExcepcion;
import gepes.modelo.Categoria;
import gepes.modelo.Estudiante;
import gepes.modelo.TipoDocumento;
import gepes.modelo.Usuario;

public class GestionEstudiante {

	public boolean validar(Estudiante vo) {
		if (vo.getApePat().equals("") || vo.getApeMat().equals("")
				|| vo.getNombres().equals("") || vo.getMail().equals("")
				|| vo.getPassword().equals("")
				|| vo.getNroDocumento().equals("")) {
			return false;
		}
		return true;
	}

	public Estudiante insertar(String apepaterno, String apematerno,
			String nombre, String sexo, int codtipodoc, String nrodoc,
			String mail, String celular, String password, String perfil,
			String foto) throws DAOExcepcion {
		EstudianteDAO dao = new EstudianteDAO();
		Estudiante vo = new Estudiante();
		vo.setApePat(apepaterno);
		vo.setApeMat(apematerno);
		vo.setNombres(nombre);
		vo.setSexo(sexo);
		vo.setTipoDocumento(new TipoDocumento(codtipodoc, "", true));
		vo.setNroDocumento(nrodoc);
		vo.setMail(mail);
		vo.setNroCelular(celular);
		vo.setPassword(password);
		vo.setPerfil(perfil);

		if (dao.existe(mail, "mail") > 0) {
			throw new DAOExcepcion("Usuario ya registro ese correo");
		}

		if (dao.existe(nrodoc, "nrodocumento") > 0) {
			throw new DAOExcepcion("Usuario ya registro ese nro documento");
		}
		return (Estudiante) dao.insertar(vo, foto);
	}

	public Estudiante editar(int id, String apepaterno, String apematerno,
			String nombre, String sexo, int codtipodoc, String nrodoc,
			String celular, String perfil, String foto) throws DAOExcepcion {
		EstudianteDAO dao = new EstudianteDAO();
		Estudiante vo = new Estudiante();
		vo.setApePat(apepaterno);
		vo.setApeMat(apematerno);
		vo.setNombres(nombre);
		vo.setSexo(sexo);
		vo.setTipoDocumento(new TipoDocumento(codtipodoc, "", true));
		vo.setNroDocumento(nrodoc);
		vo.setNroCelular(celular);
		vo.setPerfil(perfil);
		vo.setCodUsuario(id);
		return (Estudiante) dao.editar(vo);
	}

	public Collection<Usuario> listar() throws DAOExcepcion {
		EstudianteDAO dao = new EstudianteDAO();
		Collection<Usuario> vo = dao.listar(3);
		return vo;
	}
}
